<?php

namespace app\common\model\user;

use think\Model;

class Address extends Model
{
    // 收货地址表
    protected $table = 'pre_user_address';

    // 追加字段
    protected $append = [
        'address_text'
    ];

    // 关联查询
    public function provinces()
    {
        /**
         * belongsTo 相对
         * 第一个参数 模型名
         * 第二个参数 关联外键
         * 第三个参数 关联主键
         * 第四个参数 模型别名
         * 第五个参数 链表方法（JOIN）
        */
        return $this->belongsTo('app\common\model\Region','province','code',[],'LEFT')->setEagerlyType(0);
    }

    public function citys()
    {
       return $this->belongsTo('app\common\model\Region','city','code',[],'LEFT')->setEagerlyType(0);
    }

    public function districts()
    {
       return $this->belongsTo('app\common\model\Region','district','code',[],'LEFT')->setEagerlyType(0);
    }


    // 地区字段
    public function getAddressTextAttr($value,$data)
    {
        $ReogionList = [];

        if(!empty($data['province']))
        {
            $ReogionList[] = model('Region')->where(['code' => $data['province']])->value('name');
        }

        if(!empty($data['city']))
        {
            $ReogionList[] = model('Region')->where(['code' => $data['city']])->value('name');
        }

        if(!empty($data['district']))
        {
            $ReogionList[] = model('Region')->where(['code' => $data['district']])->value('name');
        }

        $text =  implode('-',$ReogionList);

        return $text.' '.$data['address'];
    }
}
